package org.bigdata.framework.core.protocol;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.bigdata.framework.core.model.Advertisement;
import org.bigdata.framework.core.model.Answer;
import org.bigdata.framework.core.model.Audit;
import org.bigdata.framework.core.model.Browse;
import org.bigdata.framework.core.model.Category;
import org.bigdata.framework.core.model.ClassesOnline;
import org.bigdata.framework.core.model.ClassesOnlineComment;
import org.bigdata.framework.core.model.Collect;
import org.bigdata.framework.core.model.Comment;
import org.bigdata.framework.core.model.Config;
import org.bigdata.framework.core.model.Course;
import org.bigdata.framework.core.model.CourseComment;
import org.bigdata.framework.core.model.CourseQuestion;
import org.bigdata.framework.core.model.Live;
import org.bigdata.framework.core.model.LiveQuestion;
import org.bigdata.framework.core.model.Log;
import org.bigdata.framework.core.model.Member;
import org.bigdata.framework.core.model.Menu;
import org.bigdata.framework.core.model.Message;
import org.bigdata.framework.core.model.Online;
import org.bigdata.framework.core.model.OnlineQuestion;
import org.bigdata.framework.core.model.Order;
import org.bigdata.framework.core.model.Paper;
import org.bigdata.framework.core.model.Permission;
import org.bigdata.framework.core.model.Question;
import org.bigdata.framework.core.model.QuestionDatabase;
import org.bigdata.framework.core.model.Role;
import org.bigdata.framework.core.model.ShortFilm;
import org.bigdata.framework.core.model.ShortFilmComment;
import org.bigdata.framework.core.model.User;
import org.bigdata.framework.core.model.UserRole;

/**
 * 公开接口（读）
 * @author vimes
 *
 */
public interface IPublicService {
	
	/* 用户管理 start */
	User findUser(Integer id);
	List<User> getUser();
	List<User> getUser(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getUserCount(HashMap<String, Object> queryParams);
	/* 用户管理 end */
	
	/* 菜单管理 start */
	Menu findMenu(Integer id);
	List<Menu> getMenu();
	/* 菜单管理 end */
	
	/* 权限管理 start */
	Permission findPermission(Integer id);
	List<Permission> getPermission();
	List<Permission> getPermission(HashMap<String, Object> queryParams);
	/* 权限管理 end */
	
	/* 角色管理 start */
	Role findRole(Integer id);
	List<Role> getRole();
	List<Role> getRole(HashMap<String, Object> queryParams);
	/* 角色管理 end */
	
	/* 用户-角色管理 start */
	UserRole findUserRole(Integer id);
	List<UserRole> getUserRole();
	List<UserRole> getUserRole(HashMap<String, Object> queryParams);
	/* 用户-角色管理 end */
	
	/* 广告表 start */
	Advertisement findAdvertisement(Integer id);
	List<Advertisement> getAdvertisement(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getAdvertisementCount(HashMap<String, Object> queryParams);
	/* 用户管理 end */
	/* 广告表 end */
	
	/* 浏览表 start */
	Browse findBrowse(Integer id);
	List<Browse> getBrowse(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getBrowseCount(HashMap<String, Object> queryParams);
	/* 浏览表 end */

	/* 栏目表 start */
	Category findCategory(Integer id);
	List<Category> getCategory();
	List<Category> getCategory(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCategoryCount(HashMap<String, Object> queryParams);
	/* 栏目表 end */
	
	/* 网班表 start */
	ClassesOnline findClassesOnline(Integer id);
	List<ClassesOnline> getClassesOnline(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getClassesOnlineCount(HashMap<String, Object> queryParams);
	/* 网班表 end */
	
	/* 网班评价表 start */
	ClassesOnlineComment findClassesOnlineComment(Integer id);
	List<ClassesOnlineComment> getClassesOnlineComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getClassesOnlineCommentCount(HashMap<String, Object> queryParams);
	/* 网班评价表 end */
	
	/* 收藏表 start */
	Collect findCollect(Integer id);
	List<Collect> getCollect(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCollectCount(HashMap<String, Object> queryParams);
	/* 收藏表end */
	
	/* 意见表 start */
	Comment findComment(Integer id);
	List<Comment> getComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCommentCount(HashMap<String, Object> queryParams);
	/* 意见表end */

	/* 配置表 start */
	Config findConfig(Integer id);
	List<Config> getConfig(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getConfigCount(HashMap<String, Object> queryParams);
	/* 配置表end */
	
	/* 课程表 start */
	Course findCourse(Integer id);
	List<Course> getCourse(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCourseCount(HashMap<String, Object> queryParams);
	/* 课程表 end */
	
	/* 课程-评价表 start */
	CourseComment findCourseComment(Integer id);
	List<CourseComment> getCourseComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCourseCommentCount(HashMap<String, Object> queryParams);
	/* 课程-评价表 end */
	
	/* 课程组卷表 start */
	CourseQuestion findCourseQuestion(Integer id);
	List<CourseQuestion> getCourseQuestion(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getCourseQuestionCount(HashMap<String, Object> queryParams);
	/* 课程组卷表 end */
	
	/* 直播表 start */
	Live findLive(Integer id);
	List<Live> getLive(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getLiveCount(HashMap<String, Object> queryParams);
	/* 直播表 end */
	
	/* 直播组卷表 start */
	LiveQuestion findLiveQuestion(Integer id);
	List<LiveQuestion> getLiveQuestion(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getLiveQuestionCount(HashMap<String, Object> queryParams);
	/* 直播组卷表 end */
	
	/* 日志表 start */
	Log findLog(Integer id);
	List<Log> getLog(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getLogCount(HashMap<String, Object> queryParams);
	/* 日志表 end */
	
	/* 前端用户表 start */
	Member findMember(Integer id);
	List<Member> getMember(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getMemberCount(HashMap<String, Object> queryParams);
	/* 前端用户表 end */
	
	/* 消息表 start */
	Message findMessage(Integer id);
	List<Message> getMessage(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getMessageCount(HashMap<String, Object> queryParams);
	/* 消息表 end */
	
	/* 微课表 start */
	Online findOnline(Integer id);
	List<Online> getOnline(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getOnlineCount(HashMap<String, Object> queryParams);
	/* 微课表 end */
	
	/* 微课组卷表 start */
	OnlineQuestion findOnlineQuestion(Integer id);
	List<OnlineQuestion> getOnlineQuestion(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getOnlineQuestionCount(HashMap<String, Object> queryParams);
	/* 微课组卷表 end */
	
	/* 订单表start */
	Order findOrder(Integer id);
	List<Order> getOrder(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getOrderCount(HashMap<String, Object> queryParams);
	/* 订单表 end */
	
	/* 题目表start */
	Question findQuestion(Integer id);
	List<Question> getQuestion(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getQuestionCount(HashMap<String, Object> queryParams);
	/* 题目表 end */
	
	/* 题库表start */
	QuestionDatabase findQuestionDatabase(Integer id);
	List<QuestionDatabase> getQuestionDatabase(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getQuestionDatabaseCount(HashMap<String, Object> queryParams);
	/* 题库表 end */
	
	/* 短片表start */
	ShortFilm findShortFilm(Integer id);
	List<ShortFilm> getShortFilm(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getShortFilmCount(HashMap<String, Object> queryParams);
	/* 短片表 end */
	
	/* 短片评论表start */
	ShortFilmComment findShortFilmComment(Integer id);
	List<ShortFilmComment> getShortFilmComment(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getShortFilmCommentCount(HashMap<String, Object> queryParams);
	/* 短片评论表 end */

	/* 卷子表start */
	Paper findPaper(Integer id);
	List<Paper> getPaper(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getPaperCount(HashMap<String, Object> queryParams);
	/* 卷子表 end */
	
	/* 答案表start */
	Answer findAnswer(Integer id);
	List<Answer> getAnswer(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getAnswerCount(HashMap<String, Object> queryParams);
	/* 答案表 end */
	
	/* 审核表start */
	Audit findAudit(Integer id);
	List<Audit> getAudit(HashMap<String, Object> queryParams, int pageNumber, int pageSize);
	Integer getAuditCount(HashMap<String, Object> queryParams);
	/* 审核表 end */
	
	
	List<Map<String, Object>> getCourseQuestionList(String id, int pageNumber, int pageSize);
	Integer getCourseQuestionListCount(String id);
	List<Map<String, Object>> getLiveQuestionList(String id, int pageNumber, int pageSize);
	Integer getLiveQuestionListCount(String id);
	List<Map<String, Object>> getOnlineQuestionList(String id, int pageNumber, int pageSize);
	Integer getOnlineQuestionListCount(String id);

	
	Integer courseOrderQuetionBaseCount(String id);
	Integer onlineOrderQuetionBaseCount(String id);
}
